
var webDB = require('../db/webDB');


exports.setRestful = function(app){

    
    
 //Obtener Puntos
    app.get('/listaPuntos', function(req, res) {
    

		
 		webDB.listaPuntos(function(estado,datos){
			if(estado)
			{
				res.send(datos);
			}
			else
			{

				res.status(503).send({mensaje:"intentelo más tarde"});
			}
			
		}); 
		 
	
    });
    
    app.get('/punto', function(req, res) {
    
    	
    	var idPunto=req.query.idPunto;
    	console.log(idPunto);
    	
		
 		webDB.obtenerPunto(idPunto,function(estado,datos){
			if(estado)
			{
				res.send(datos);
			}
			else
			{

				res.status(503).send({mensaje:"intentelo más tarde"});
			}
			
		}); 
		 
	
    });
    
    
    function agregarFoto(id, aFotos,res,retormo)
    {
    	
    	
 		movilDB.agregarImagenesFormulario(avicolaImagen,function(estado,datos){
			if(estado)
			{
				res.send(datos);
			}
			else
			{

				res.status(503).send({mensaje:"intentelo más tarde"});
			}
			
		}); 
    	
    }
    
    
    // Create avicultor
    app.post('/denunciaWeb', function(req, res) {
   
		var avicola={};
		avicola.direccion=req.body.dir;
		avicola.detallesDenuncia=req.body.d;
		avicola.gelocalizacion=null;
		avicola.tipoDenuncia=eval("("+req.body.td+")");
		avicola.estadoDenuncia=0;
		avicola.formularioVerificacion=null;
		var fechaActual=new Date();
		avicola.fechaActual=fechaActual.getTime();
	
		
		var f;
		var aF=new Array();
		for(var i=0; i<req.files.foto.length;i++)
		{
			f=req.files.foto[i];
			 aF[i]={path:f.path,lastModifiedDate: f.lastModifiedDate };
		}
		

 		movilDB.agregarFormulario(avicola,function(estado,datos){
			if(estado)
			{
				
				var retorno={};
				retorno.id=datos._id;
				var avicolaImagen;
				var arrayAvicolaImagen=new Array();
				for(var i=0; i<aF.length;i++)
				{
					 f=req.files.foto[i];
					 avicolaImagen={};
					 avicolaImagen.idFormulario=datos._id;
					 avicolaImagen.pathFile={path:f.path};
					 arrayAvicolaImagen[i]=avicolaImagen;
				}
				
		 		movilDB.agregarImagenesFormulario(arrayAvicolaImagen,function(estado,datos){
					if(estado)
					{
						res.send(retorno);
					}
					else
					{

						res.status(503).send({mensaje:"intentelo más tarde"});
					}
					
				}); 
		    	
				
				
			}
			else
			{

				res.status(503).send({mensaje:"intentelo más tarde"});
			}
			
		});    
    });
    
    
    
app.get('/listaPuntosFiltro', function(req, res) {
    
	var ufiltro=req.query.filtro;
	ufiltro=eval("("+ufiltro+")");
	console.log(ufiltro);
	var filtroDB={};
	
	var indice=0;
	var orF=new Array();
	if(ufiltro.filtro.ckVerificado)
	{

		orF[indice]={"estadoDenuncia":2};
		indice++;
	}
	
	if(ufiltro.filtro.ckFaltaHigiene)
	{
		orF[indice]={"tipoDenuncia.ckFaltaHigiene":ufiltro.filtro.ckFaltaHigiene};
		indice++;
	}
	if(ufiltro.filtro.ckManejoDesechos)
	{
		orF[indice]={"tipoDenuncia.ckManejoDesechos":ufiltro.filtro.ckManejoDesechos};
		indice++;
	}
	
	if(ufiltro.filtro.ckCrueldadAnimal)
	{
		orF[indice]={"tipoDenuncia.ckCrueldadAnimal":ufiltro.filtro.ckCrueldadAnimal};
		indice++;
	}
	
	if(ufiltro.filtro.ckSobrePoblacion)
	{
		orF[indice]={"tipoDenuncia.ckSobrePoblacion":ufiltro.filtro.ckSobrePoblacion};
		indice++;
	}
	
	if(ufiltro.filtro.ckFaenamientoAntihigienico)
	{
		orF[indice]={"tipoDenuncia.ckFaenamientoAntihigienico":ufiltro.filtro.ckFaenamientoAntihigienico};
		indice++;
	}
	
	if(ufiltro.filtro.ckRoedores)
	{
		orF[indice]={"tipoDenuncia.ckRoedores":ufiltro.filtro.ckRoedores};
		indice++;
	}

	var rango={}
	if(ufiltro.fInicio!=null)
	{
		if(ufiltro.fTermino!=null)
		{
			rango={ "$gt": ufiltro.fInicio, "$lt": ufiltro.fTermino };
		}
		else
		{
			rango={ "$gt": ufiltro.fInicio};
		}
	}else if(ufiltro.fTermino!=null)
	{
		rango={"$lt": ufiltro.fTermino };
	}
	else
	{
		rango=null;
	}
	
	
	if(rango!=null)
	{
		orF[indice]={"fechaActual":rango};
	}
	
		
	var fF={"$and":orF};
	console.log(fF);
 		webDB.listaPuntosFiltro(fF,function(estado,datos){
			if(estado)
			{
				res.send(datos);
			}
			else
			{

				res.status(503).send({mensaje:"intentelo más tarde"});
			}
			
		}); 
		 
	
    });
    
}
    